namespace eg._asynchronous;

using System.Threading.Tasks;

public class Eg_Asynchronous
{
    private async Task DoAHeavyJobAsync()
    {
        Console.WriteLine("Ready to do");
        await Task.Run(() =>
        {
            Thread.Sleep(4000);
            Console.WriteLine("DoAHeavyJobAsync");
        });
        Console.WriteLine("Completed!");
    }
    public void FetchResource()
    {
        DoAHeavyJobAsync();
    }
}
// public class Program
// {
//     private static void Main()
//     {
//         Sync sync = new();
//         sync.Do();
//         // Thread.Sleep(5000);
//         ReadKey();
//     }
// }

// public class Sync
// {
//     public async Task Do()
//     {
//         WriteLine(1);
//         await Task.Run(() =>
//         {
//             Thread.Sleep(5000);
//             WriteLine("complete!");
//         });
//         WriteLine(2);
//     }
// }